package gov.nasa.anml.lifted;

import gov.nasa.anml.PDDL;
import gov.nasa.anml.utility.SimpleObject;
import gov.nasa.anml.utility.SimpleString;
import gov.nasa.anml.utility.SimpleVoid;

public interface Type<T> extends Identifier<SimpleString,SimpleVoid>, ConstantExpression<SimpleString>, Cloneable {
	public abstract TypeCode typeCode();
	public abstract Type<T> constrain(Constraint<T> c);
	public abstract Type<T> clone();
	//public abstract void translateDecl(PDDL pddl);
	public abstract PDDL.Type asPDDLType();
}
